User-customized homepage for widgets configured to retrieve and display data from defined network locations

ABSTRACT

A system that improves productivity and computer access to various network sites by providing users with a single stop destination for consumption of information that is spread across multiple network sites is described. A user interface (UI) view is customizable in the sense that each user is enabled to define the type of information to be displayed, as well as the way the information is organized. To do this, the system is configured to expose various options for configuring the UI view. The options enable a user to create a widget, which is a mechanism configured to retrieve data from a target location and display the data in a tile of the UI view. Accordingly, the UI view acts as a container for multiple widgets configured at the user level, thereby providing a one stop solution for the network information that is of continued interest to a particular user.

PRIORITY APPLICATION

This application claims the benefit of and priority to Indian (IN)Non-Provisional Application No. 202141028964, filed Jun. 28, 2021, theentire contents of which are incorporated herein by reference.

BACKGROUND

Users that spend a considerable amount of time on computers, for workreasons, typically are required to monitor and/or periodically checkinto different network sites for updated information and/or so they donot miss important information. In many instances, these users also wantto monitor and be made aware of information that recently surfaces viaother network sites for personal reasons. These personal and/orwork-related network sites may include, for example, email portals,enterprise management system portals (e.g., a developer operationssite), productivity portals, calendars with work and/or personalappointment objects, storage sites that maintain work and/or personalfiles, social media sites, collaboration tools (e.g., video conferencingand group chats), financial accounts (e.g., bank account, equityaccount, retirement account, etc.), etc. These network sites may furtherinclude public web sites where the user can sign in via a personalaccount to see personal and/or customized information (e.g., news sites,sports sites, weather sites, financial information sites, product sites,e-commerce sites, ticket sales sites, streaming television or videosites, map sites, social media sites, etc.).

Consequently, these users often find themselves switching betweendifferent user interface (UI) views (e.g., application windows, browserwindows, operating system UIs, etc.) on various user devices to consumecontent. For example, some users have upwards of twenty or thirtydifferent UI views open at a given time. This switching process has thepotential to waste time as the user often has to sort through and/orfind different UI elements (e.g., icons, tabs, etc.) in differentlocations just to access a desired site. At the very least, the userexperience is affected by the need to switch between different UI views.

It is with respect to these and other considerations that the disclosuremade herein is presented.

SUMMARY

The techniques disclosed herein are intended to improve productivity andcomputer access to various network sites by providing users (e.g.,enterprise users) with a single stop destination for consumption ofimportant information that is spread across multiple network sites. Thishelps solve the frustrations hinted on above because a user can keeptrack of information available on multiple network sites by only lookingat a single user interface (UI) view. This single UI view may bereferred to or serve as a “homepage”, or alternatively, as a“dashboard”. In some examples, the single UI view may be displayed via abrowser. That is, the single UI view may be the first tab configuredwhen a browser is opened. In other examples, the single UI view may bedisplayed via a different component executing on a user device, such asan operating system component or a dedicated application.

A system described herein is configured to expose various options forconfiguring the single UI view. The options enable a user to create awidget for the single UI view. A widget is a mechanism configured toretrieve data from a target location and display the data in a space, inthe single UI view, that is allocated to the widget. A widget displayedin the single UI view is also configured to allow for user interactionand perform functionality based on the user interaction (e.g., allow fora user to reply to an email, change the status of a ticket or a task, beredirected to a videoconference meeting based on clinking a link in acalendar appointment, etc.). The space allocated to the widget may bereferred to as a tile. The target location can be a resource locator,such as uniform resource locator (URL). Accordingly, the single UI viewacts as a container for multiple widgets configured at the user level,thereby providing a one stop solution for most, if not all, of thenetwork and/or device information that is or is likely to be ofcontinued interest to a particular user.

The user can designate a widget to be one of different types, so thatthe functionality and the user experience offered by the single UI viewbetter reflects what the user desires. The widget tiles can beconfigured as selectable UI elements such that they can be activated viaa mouse click, a touch, a key press, or some other sort of user input. Afirst type of widget includes an “embedded view” widget. A user candefine content to be displayed while an embedded view widget is in aninactive state. For example, the embedded view widget can be configuredto display, while the tile is in an inactive state, an icon or someother sort of graphical representation for the target location. Inanother example, an embedded view widget can be configured to initiallyretrieve and display, while the tile is in an inactive state, first datathat represents the target location. The first data can be a still imageor some general information associated with the target location. Whenthe tile is selected and activated by a user, the embedded view widgetis configured to operate in an active state where it continuallyretrieves and displays second data from the target location and displaythe second data in the single UI view. The second data may be morein-depth compared to the first data. For example, the second data mayinclude video data, a really simple syndication (RSS) feed, or maproutes or directions. The user may define a default state (e.g., activestate, inactive state, etc.) for an embedded view widget. Consequently,an embedded view widget can be particularly useful for target locationsthat update data in real-time (e.g., a streaming video site such as alive channel). The embedded view widget can be useful for other types ofsites as well.

A second type of widget includes a “UI template” widget. A UI templatewidget describes a framework for retrieving and displaying dataretrieved from a target location in a standard format (e.g., JavaScriptObject Notation (JSON)). For example, a template widget can beconfigured as an adaptive card that retrieves, via an applicationprogramming interface (API), JSON data from a target location. Adaptivecards are platform-agnostic templates for light-weight UIs, that areauthored in JSON and that can be openly exchanged by differentapplications and services. Accordingly, a target location identified viaa UI template, such as an adaptive card, may include a platform thatconnects multiple applications, services, and/or devices. Examples ofthese type of platforms include MICROSOFT GRAPH, AZURE DEVOPS, or anyopen JSON API that does not require authentication. When delivered to awidget tile on the single UI view, the JSON data is transformed into anative or localized UI that automatically adapts to its surroundings. Invarious examples, an adaptive card can use authorization tokens so thatprotected information (e.g., user account information such as emails inan inbox) can be retrieved and/or refreshed by a widget over a period oftime. Consequently, a user can configure a UI template widget to selecta preconfigured UI template from a UI template library (e.g., anadaptive card library) that allows for the retrieval of standard formatdata (e.g., JSON data) via API calls.

A third type of widget includes a “redirect link” widget. A redirectlink widget redirects a user to a separate UI view associated with atarget location when the widget is activated and selected by a user. Asdescribed above, in one example, the target location is a URL for astie. In this example, the data retrieved and displayed via a redirectlink widget is high-level data (e.g., select pieces of information) thatthe user can view to grasp a general and/or a temporal understanding ofa state or a context of content at the site. If the user sees somethingof interest in a tile for the redirect link widget, the user mayactivate the widget by clicking on the tile and the user is redirectedto the site so the user can see more detailed information. This redirectaction will take the user away from the single UI view (e.g., switchactive tabs in a browser from the homepage to the site). Alternatively,a redirect link widget can merely display an icon that represents theURL and the site.

For organizational purposes, the user can customize the display ofwidgets in the single UI view into multiple categories. The categories,and a selection of a specific category for a widget, can be defined bythe user. Alternatively, the categories can be defined by a system basedon artificial intelligence and/or machine learning algorithms configuredto organize content and applications for the user based on factors suchas the most frequently used, most recently used, etc. Furthermore, thesystem described herein provides the users with options to define sizesand/or colors (e.g., text color, background color, etc.) for the widgettiles.

Finally, the user can designate the ability for a widget to switch froma default state to an expanded state. The switch may occur when thewidget tile is activated. This ability is most likely associated withembedded view widgets or UI template widgets, as activation of aredirect link widget takes the user away from the single UI view. Theexpanded state increases the amount of UI space for a widget tile. Inthis way, the user can see more data (e.g., more email items listed inan inbox) retrieved from a target location and/or more easily interactwith the data without moving away from the single UI view. To furtherimprove user accessibility, a widget can be configured in differentviews/arrangements for different form factors (e.g., a smartphone, adesktop computer, etc.) that provide different display space.

The techniques disclosed herein provide a number of features thatimprove existing computing devices. For instance, a computing devicedoes not have to expend extra resources (e.g., computing resources suchas processor cycles, memory resources, etc.) to switch between UI views,thereby conserving power of a computing device. Moreover, the userexperience with regard to accessing and/or displaying content that iscontinually, over a period of time, of interest to a particular user.Other technical benefits not specifically mentioned herein can also berealized through implementations of the disclosed subject matter.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key or essentialfeatures of the claimed subject matter, nor is it intended to be used asan aid in determining the scope of the claimed subject matter. The term“techniques,” for instance, may refer to system(s), method(s),computer-readable instructions, module(s), algorithms, hardware logic,and/or operation(s) as permitted by the context described above andthroughout the document.

BRIEF DESCRIPTION OF THE DRAWINGS

The Detailed Description is described with reference to the accompanyingfigures. In the figures, the left-most digit(s) of a reference numberidentifies the figure in which the reference number first appears. Thesame reference numbers in different figures indicate similar oridentical items. References made to individual items of a plurality ofitems can use a reference number with a letter of a sequence of lettersto refer to each individual item. Generic references to the items mayuse the specific reference number without the sequence of letters.

FIG. 1 illustrates an example graphical user interface (GUI) that showsa single user interface (UI) view (e.g., a homepage, a dashboard) thatdisplays various types of widgets configured to retrieve and displayinformation from target locations.

FIG. 2 is a diagram illustrating an example environment in which a usercan set up a single UI view and/or use the single UI view to displayvarious types of widgets configured to retrieve and display informationfrom target locations.

FIG. 3 illustrates an example GUI that enables a user to configure awidget to be added to the single UI view.

FIG. 4A illustrates an example of an embedded view type widget.

FIG. 4B illustrates an example of a UI template type widget.

FIG. 4C illustrates an example of a redirect link type widget.

FIG. 4D illustrates an example of how a widget can be displayed in anexpanded state.

FIG. 5 is a flow diagram of an example method for configuring anddisplaying a single UI view so a user can see information from multiplesites in one place.

FIG. 6 is a computer architecture diagram illustrating an illustrativecomputer hardware and software architecture for a computing systemcapable of implementing aspects of the techniques and technologiespresented herein.

FIG. 7 is a diagram illustrating a distributed computing environmentcapable of implementing aspects of the techniques and technologiespresented herein.

DETAILED DESCRIPTION

The following Detailed Description discloses a system that improvesproductivity and computer access to various network sites by providingusers (e.g., enterprise users) with a single stop destination forconsumption of important information that is spread across multiplenetwork sites. The single stop destination is a user interface (UI) viewthat is customizable in the sense that each user is enabled to definethe type of information to be displayed, as well as the way theinformation is organized when displayed. To do this, the system isconfigured to expose various options for configuring the single UI view.The options enable a user to create a widget for the single UI view. Awidget is a mechanism configured to retrieve data from a target locationand display the data in a space, in the single UI view, that isallocated to the widget. A widget displayed in the single UI view isalso configured to allow for user interaction and perform functionalitybased on the user interaction (e.g., allow for a user to reply to anemail, change the status of a ticket or a task, be redirected to avideoconference meeting based on clinking a link in a calendarappointment, etc.). The space allocated to the widget may be referred toas a tile. The target location can be a resource locator, such asuniform resource locator (URL). Accordingly, the single UI view acts asa container for multiple widgets configured at the user level, therebyproviding a one stop solution for most, if not all, of the networkand/or device information that is or is likely to be of continuedinterest to a particular user.

Various examples, scenarios, and aspects that allow for theconfiguration and display of a single UI view, are described below withreference to FIGS. 1-7 .

FIG. 1 illustrates an example graphical user interface (GUI) 100 thatshows a single user interface UI view (e.g., a homepage, a dashboard)that displays various types of widgets configured to retrieve anddisplay information from target locations. As shown, the single UI viewincludes a number of widget tiles 102, or display spaces allocated tothe various widgets configured within the single UI view. The widgettiles may vary in size and/or color so the user can implement acustomized approach to viewing information.

In one example, the single UI view may be displayed via a browser. Thatis, the single UI view may be the first tab configured when a browser isopened. In other examples, the single UI view may be displayed via adifferent component executing on a user device, such as an operatingsystem component or a dedicated application.

The user can customize the display of widgets in the single UI view intomultiple categories. As shown in FIG. 1 , this example user who is adeveloper at a technology company, has defined a first workschedule/communication category 104 for the left side of the single UIview. For illustration purposes, this category 104 includes a firstwidget configured to retrieve email items from an inbox, a second widgetthat includes appointments on a work calendar, a third widget that listspersonal tasks to be worked on or completed from a planner, and soforth.

The user has also defined a development projects category 106 for whichtiles are displayed in the middle of the single UI view. Forillustration purposes, this category 106 includes a first widgetconfigured to list development projects (e.g., files) created by theuser via a development portal, a second widget that lists projectsassigned to the user via a development portal, and a third widget thatshows a live streaming channel that broadcasts presentations related tothe development industry.

Finally, in this example, the user has defined a non-work category 108for the right side of the single UI view. This category includes a firstwidget that lists the latest news, a second widget that lists the stockprice of a company in which the user is interested (e.g., MICROSOFT orstock ticker “MSFT”), a third widget associated with a sports site, afourth widget associated with a social media site, a fifth widgetassociated with a chat application, and a sixth widget associated with asite that surfaces information about new product releases. The number ofcategories and/or the number of widget tiles 102 configured in acategory is not limited, and those shown are provided as examples only.

Accordingly, a user, such as the one represented in the example of FIG.1 , is able to customize a single UI view so that they can accessdesired information in one place. FIG. 2 is a diagram illustrating anexample environment 200 in which a user can set up a single UI viewand/or use the single UI view to display various types of widgetsconfigured to retrieve and display information from target locations.The example environment includes a system 202 (e.g., a user device) thatcomprises a widget module 204 and a display module 206. The number ofillustrated modules in the system 202 is just an example, and the numbercan vary higher or lower. That is, functionality described herein inassociation with the illustrated modules can be performed by a fewernumber of modules or a larger number of modules on one device or spreadacross multiple devices.

As shown, the widget module 204 includes various widgets 208 that havebeen configured by a user of the system 202 based on one or moresettings. As further discussed herein with respect to FIG. 3 , thewidget module 204 is configured to expose various options and/or entryfields so a user can define the settings for an individual widget. Asmentioned above, the widgets 208 are mechanisms configured to retrievedata, over network(s) 210, from target locations 212. The targetlocations 212 may be personal network sites and/or work-related networksites. These may include, for example, email portals, enterprisemanagement system portals (e.g., a developer operations site),productivity portals, calendars with work and/or personal appointmentobjects, storage sites that maintain work and/or personal files, socialmedia sites, collaboration tools (e.g., video conferencing and groupchats), financial accounts (e.g., bank account, equity account,retirement account, etc.), news sites, sports sites, weather sites,product sites, e-commerce sites, ticket sales sites, streamingtelevision or video sites, map sites, etc. In some instances, the targetlocations may be local to the system 202 such that networkcommunications are not needed to retrieve the data.

The data can then be displayed in the tiles 102 of the single UI viewthat are allocated to the widgets 208. The target locations can beidentified via resource identifiers, such as uniform resource locators(URLs) 214. Accordingly, a first setting defined by a user for anindividual widget 208 includes a target location 216 (e.g., a URL) fromwhich the data to be displayed in a tile is to be sourced.

A second setting comprises a type 218 of widget. Different types 218 ofwidgets can be configured to retrieve and/or display information in thesingle UI view in different ways. A type 218 of widget can include anembedded view, a UI template, or a redirect link. These are discussedbelow with respect to FIGS. 4A-4C. However, the techniques describedherein can be used with other types 218 of widgets as well.

A third setting comprises a category 220 for the widget. Correspondingtiles can be organized, in the single UI view, according to differentcategories defined by the user. This helps with the productivity aspectsof the single UI view because widget tiles, related in some way or formfrom the perspective of the user, can be grouped together.

A fourth setting can comprise a tile size 222. The tile size 222 can bedefined by the user so that more important widgets can be allocated moredisplay space. For instance, the user may want a widget tile that listsemail items to be larger in size compared to a widget tile that listscalendar objects/appointments. In this sense, the user is moreinterested in seeing more recently received emails rather than anincreased number of calendar appointments on the user's schedule.

A fifth setting can include a tile order 224, within a single categoryfor example. The tile order 224 may be important as a number ofdisplayed tiles increases. For instance, the user may want the moreimportant widgets displayed towards the top of the single UI view (e.g.,top of a category column). In some embodiments, the single UI view is anon-scrollable UI, and thus, as widgets are added the sizes of lessimportant widgets (e.g., on the bottom of the single UI view areautomatically reduced to accommodate the additional widgets. Therefore,the tile order 224 can be an important setting when the goal is toprovide a user with an effective and efficient way of viewing pertinentinformation.

A sixth setting can include tile colors 226. The colors 226 may define acolor of text used in the widget tile and/or a background color for thetile, displayed behind the data retrieved from the target location.

A seventh setting can include whether a widget tile is to be displayedin an expanded state 228. In some instances, the tile size 222 settingdefines a default state for a widget. Since display space is valuable onthe single UI view, the default size may be limited. In order for theuser to view additional data associated with a widget tile (e.g.,additional emails in an inbox), the expanded state 228 enables the sizeof a widget tile to expand to a second size when the widget is activated(e.g., when the widget tile is selected). This is discussed below withrespect to FIG. 4D.

In various examples, a widget tile may be configured to be displayed inmultiple expanded states where each expanded state is of a differentsize. For example, a first expanded state may accommodate the display offour items (e.g., four emails, four appointments in a calendar, fourtasks on a task list, etc.), a second expanded state may accommodate thedisplay of six items, a third expanded state may accommodate the displayof eight items, and so forth. A user may be able to switch, in a loopingmanner, between the various states by activating (e.g., clicking on) thetile or a dedicated user interface element (e.g., a button) that loopsthrough the various states (e.g., normal size, first expanded size,second expanded size, etc.).

The display module 206, such as a browser or a mobile application, isconfigured to create the customized layout 230 based on the settings ofthe widgets 208, and output the customized layout on a display screen.In one example, the customized layout 230 includes a user-definedsetting regarding the positions of the categories (e.g., categories 104,106, 108, etc.) on the single UI view. The display module 206 is alsoconfigured to receive user input associated with configuring a widgetand/or interacting with the single view UI, as further described herein.Accordingly, the single UI view acts as a container for multiple widgetsconfigured at the user level, thereby providing a one stop solution formost, if not all, of the network and/or device information that is or islikely to be of continued interest to a particular user. The containermay be bound to a user account such that it can shared across differentdevices, and the container can generate different UI views based on theuse case and/or form factor of an individual device.

FIG. 3 illustrates an example GUI 300 that enables a user to provideinput useable to configure a widget to be added to the single UI view.As shown, a menu of configuration options 302 is displayed over thesingle UI view illustrated in FIG. 1 . The menu of configuration options302 enables a user to select and/or define customized settings for awidget to be added to the single UI view. As shown, a user can selectwhether the expanded state is to be enabled 304. The user can select atype of widget supported by the single UI view from a drop down menu306. The user can select a tile color 308 and/or a text color 310 from apalette of displayed color options. The user can select a widgetcategory 312 from a drop down menu. In some instances, the user canprovide input that defines a textual title for the widget. Further, theuser can define a tile size 314 for a widget tile.

The menu of configuration options 302 also enables a user to define thetarget location in a target location field 316. Depending on the widgettype 306 select, the target location 316 option may be configured toaccept: a URL, authentication, or a UI template identifier such as anadaptive card. In this way, the widget knows where to go to retrieve thedata to be displayed. In one example, the target location is a resourcelocator such as a URL. In another example, the target location field canlist a UI template, such as an adaptive card, that retrieves standardformat data (e.g., JSON data) from a target location. Adaptive cards areplatform-agnostic templates for light-weight UIs, that are authored inJSON and that can be openly exchanged by different applications andservices. Accordingly, a target location identified via a UI template,such as an adaptive card, may include a platform that connects multipleapplications, services, and/or devices. Examples of these type ofplatforms include MICROSOFT GRAPH, AZURE DEVOPS, or any open API thatdoes not require authentication.

Finally, the menu of configuration options 302 includes options for theusers to save 318 the selected and/or defined settings (e.g., createand/or edit the widget) or to cancel 320 the selected and/or definedsettings (e.g., not create the widget).

FIG. 4A illustrates an example of an embedded view type widget 400. Asdescribed above, widget tiles can be configured as selectable UIelements such that they can be activated via a mouse click, a touch, akey press, or some other sort of user input. An embedded view widget 400is configured to initially retrieve and display, while the tile is in aninactivated state, first data that represents the target location. Inthe example of FIG. 4A, the first data can be a still image, such as apaused “shot” from a streaming channel. When the tile associated withthe streaming channel is selected and activated by a user, the embeddedview widget 400 is configured to continually retrieve and display seconddata from the target location and display the second data in the singleUI view. The second data is more in-depth compared to the first data.For example, the second data may include video data. Consequently, viathe use of an embedded view widget 400, the user does not have to go toa different UI to view the streaming channel, but rather can see thevideo with the parameters of a single UI view that provides informationfrom multiple different network locations.

FIG. 4B illustrates an example of a UI template type widget 402. Asdescribe above, a UI template, such as an adaptive card, can retrievestandard format data (e.g., JSON data) from a target location. Whendelivered to a widget tile on the single UI view, the JSON data istransformed into a native or localized UI that automatically adapts toits surroundings. As shown in FIG. 4B, the UI template widget 402transforms email items from an email inbox into a widget tile. In thisway, the user can see and/or interact with their email inbox within theconfines of the single UI view. Consequently, a user can configure a UItemplate widget 402 to select a preconfigured UI template from a UItemplate library (e.g., an adaptive card library) that allows for theretrieval of standard format data (e.g., JSON data) via API calls. Invarious examples, a UI template library customized version configured ontop of a more generic UI library. For example, the system can provide aselectable option to customize and use adaptive cards already configuredto show emails from an email platform (e.g., MICROSOFT OUTLOOK).

In various examples, a UI template type widget 402 can use authorizationtokens so that protected information (e.g., user account informationsuch as emails in an inbox) can be retrieved over a period of time. Forexample, a series of authorization tokens enables the refreshing of data(e.g., checking for newly received emails) every ten seconds, thirtyseconds, one minute, etc. The refresh period can be a default timeperiod defined by the single UI view of the target application.Alternatively, the refresh period can be a user-defined time period. Insituations where an authorization token is about to expire and cannot beupdated, a notification can be displayed within a tile indicating thataccess to fresh content is not possible due to an expired authorizationtoken. Alternatively, the system can implement an authentication modulethat requires user to sign in once using credentials (e.g., account nameand password) and then the authentication module is configured to takeover the responsibility of fetching tokens.

FIG. 4C illustrates an example of a redirect link type widget 406. Aredirect link widget 406 redirects a user to a separate UI viewassociated with a target location when the widget is activated andselected by a user. As described above, in one example, the targetlocation is a URL for a stie. Accordingly, the initial data retrievedand displayed via a redirect link widget 406 is high-level data (e.g.,select pieces of information) that the user can view to grasp a generaland/or a temporal understanding of a state or a context of content atthe site, such as a sports site. If the user sees something of interestin a tile for the redirect link widget 406, the user may activate thewidget by clicking on the tile and the user is redirected to the actualsite 408 so the user can see more detailed information. This redirectaction will take the user away from the single UI view and redirect theuse to a different UI view 408 (e.g., switch active tabs in a browserfrom the homepage to the actual site UI).

FIG. 4D illustrates an example of how a widget can be displayed in anexpanded state. The user can designate the ability for a widget toswitch from a default state and size to an expanded state and size. Theswitch may occur when the widget tile is activated. As shown on the leftof FIG. 4D, two email items are displayed in the default state 410 of awidget configured to display a user's inbox. Upon activation of thewidget based on user input 412, the tile is displayed in an expandedstate 414 that makes room for additional email items to be displayed(e.g., a transition from a space that accommodates two email items to astate that accommodates four email items). Consequently, the expandedstate 414 increases the amount of UI space for a widget tile compared tothe default state 410. In this way, the user can see more data retrievedfrom a target location and/or more easily interact with the data withoutmoving away from the single UI view. This ability to expand is mostlikely associated with embedded view widgets or UI template widgets, asactivation of a redirect link widget takes the user away from the singleUI view.

In various examples, the single UI view may enable a user to scrollwithin an individual tile so the user can see data that is initially notdisplayed. Moreover, in some examples, a user can designate a tile sothat it is not selectable (e.g., the display of an equity price). Inthis way, the single view UI can avoid inadvertent user inputs.

FIG. 5 is a flow diagram illustrating routines describing aspects of thepresent disclosure. The logical operations described herein with regardsto FIG. 5 can be implemented (1) as a sequence of computer implementedacts or program modules running on a device and/or (2) as interconnectedmachine logic circuits or circuit modules within a device.

For ease of understanding, the process discussed in this disclosure isdelineated as separate operations represented as independent blocks.However, these separately delineated operations should not be construedas necessarily order dependent in their performance. The order in whichthe process is described is not intended to be construed as alimitation, and any number of the described process blocks may becombined in any order to implement the process or an alternate process.Moreover, it is also possible that one or more of the providedoperations is modified or omitted.

The particular implementation of the technologies disclosed herein is amatter of choice dependent on the performance and other requirements ofa computing device. Accordingly, the logical operations described hereinare referred to variously as states, operations, structural devices,acts, or modules. These states, operations, structural devices, acts,and modules can be implemented in hardware, software, firmware, inspecial-purpose digital logic, and any combination thereof. It should beappreciated that more or fewer operations can be performed than shown inthe figures and described herein. These operations can also be performedin a different order than those described herein.

It also should be understood that the illustrated methods can end at anytime and need not be performed in their entireties. Some or alloperations of the methods, and/or substantially equivalent operations,can be performed by execution of computer-readable instructions includedon a computer-readable media. The term “computer-readable instructions,”and variants thereof, as used in the description and claims, is usedexpansively herein to include routines, applications, applicationmodules, program modules, programs, components, data structures,algorithms, and the like. Computer-readable instructions can beimplemented on various system configurations, including processing unitsin single-processor or multiprocessor systems, minicomputers, mainframecomputers, personal computers, head-mounted display devices, hand-heldcomputing devices, microprocessor-based, programmable consumerelectronics, combinations thereof, and the like.

For example, the operations can be implemented by dynamically linkedlibraries (“DLLs”), statically linked libraries, functionality producedby an application programming interface (“API”), a compiled program, aninterpreted program, a script, a network service or site, or any otherexecutable set of instructions. Data can be stored in a data structurein one or more memory components. Data can be retrieved from the datastructure by addressing links or references to the data structure.

FIG. 5 is a flow diagram of an example method 500 for configuring anddisplaying a single UI view so a user can see information from multiplesites in one place.

At operation 502, a component on a computing device (e.g., browser,operating system) exposes options to create or edit a widget to beincluded in a single user interface view along with other widgets. Asdescribed above, the widget is allocated a display space (e.g., a tile)in the single user interface view. At operation 504, the componentreceives user input that selects options and/or defines settings. Thiscan include a type of widget, whether the tile allocated to the widgetin the single user interface view is to transition from a default stateto an expanded state upon activation of the tile, a tile size, a tileorder (e.g., a position of a tile within a displayed category), tilecolors, a target location, etc. At operation 506, the component createsor edits the single user interface based at least in part on thereceived user input.

At operation 508, the component displays the tiles associated with thewidgets that have been configured by a user. This display of the tilesmay be configured to automatically and/or continually retrieve and/ordisplay data based on the configuration of the widgets (e.g., a UItemplate type). At operation 510, a user can interact with a tile toexpand the size and/or to cause further retrieval of data (e.g.,streaming video in an embedded view).

FIG. 6 shows additional details of an example computer architecture 600for a device, such as the system 202, capable of executing computerinstructions (e.g., a module or a program component described herein).The computer architecture 600 illustrated in FIG. 6 includes processingunit(s) 602, a system memory 604, including a random access memory 606(“RAM”) and a read-only memory (“ROM”) 608, and a system bus 610 thatcouples the memory 604 to the processing unit(s) 602.

Processing unit(s), such as processing unit(s) 602, can represent, forexample, a CPU-type processing unit, a GPU-type processing unit, afield-programmable gate array (FPGA), another class of digital signalprocessor (DSP), or other hardware logic components that may, in someinstances, be driven by a CPU. For example, and without limitation,illustrative types of hardware logic components that can be used includeApplication-Specific Integrated Circuits (ASICs), Application-SpecificStandard Products (ASSPs), System-on-a-Chip Systems (SOCs), ComplexProgrammable Logic Devices (CPLDs), etc.

A basic input/output system containing the basic routines that help totransfer information between elements within the computer architecture600, such as during startup, is stored in the ROM 608. The computerarchitecture 600 further includes a mass storage device 612 for storingan operating system 614, application(s) 616, modules 618 (e.g., thewidget module 204, the display module 206), and other data describedherein.

The mass storage device 612 is connected to processing unit(s) 602through a mass storage controller connected to the bus 610. The massstorage device 612 and its associated computer-readable media providenon-volatile storage for the computer architecture 600. Although thedescription of computer-readable media contained herein refers to a massstorage device, it should be appreciated by those skilled in the artthat computer-readable media can be any available computer-readablestorage media or communication media that can be accessed by thecomputer architecture 600.

Computer-readable media can include computer storage media and/orcommunication media. Computer storage media can include one or more ofvolatile memory, nonvolatile memory, and/or other persistent and/orauxiliary computer storage media, removable and non-removable computerstorage media implemented in any method or technology for storage ofinformation such as computer-readable instructions, data structures,program modules, or other data. Thus, computer storage media includestangible and/or physical forms of media included in a device and/orhardware component that is part of a device or external to a device,including but not limited to random access memory (RAM), staticrandom-access memory (SRAM), dynamic random-access memory (DRAM), phasechange memory (PCM), read-only memory (ROM), erasable programmableread-only memory (EPROM), electrically erasable programmable read-onlymemory (EEPROM), flash memory, compact disc read-only memory (CD-ROM),digital versatile disks (DVDs), optical cards or other optical storagemedia, magnetic cassettes, magnetic tape, magnetic disk storage,magnetic cards or other magnetic storage devices or media, solid-statememory devices, storage arrays, network attached storage, storage areanetworks, hosted computer storage or any other storage memory, storagedevice, and/or storage medium that can be used to store and maintaininformation for access by a computing device.

In contrast to computer storage media, communication media can embodycomputer-readable instructions, data structures, program modules, orother data in a modulated data signal, such as a carrier wave, or othertransmission mechanism. As defined herein, computer storage media doesnot include communication media. That is, computer storage media doesnot include communications media consisting solely of a modulated datasignal, a carrier wave, or a propagated signal, per se.

According to various configurations, the computer architecture 600 mayoperate in a networked environment using logical connections to remotecomputers through the network 620. The computer architecture 600 mayconnect to the network 620 through a network interface unit 622connected to the bus 610. The computer architecture 600 also may includean input/output controller 624 for receiving and processing input from anumber of other devices, including a keyboard, mouse, touch, orelectronic stylus or pen. Similarly, the input/output controller 624 mayprovide output to a display screen, a printer, or other type of outputdevice.

It should be appreciated that the software components described hereinmay, when loaded into the processing unit(s) 602 and executed, transformthe processing unit(s) 602 and the overall computer architecture 600from a general-purpose computing system into a special-purpose computingsystem customized to facilitate the functionality presented herein. Theprocessing unit(s) 602 may be constructed from any number of transistorsor other discrete circuit elements, which may individually orcollectively assume any number of states. More specifically, theprocessing unit(s) 602 may operate as a finite-state machine, inresponse to executable instructions contained within the softwaremodules disclosed herein. These computer-executable instructions maytransform the processing unit(s) 602 by specifying how the processingunit(s) 602 transition between states, thereby transforming thetransistors or other discrete hardware elements constituting theprocessing unit(s) 602.

FIG. 7 depicts an illustrative distributed computing environment 700within which the techniques described herein can be implemented. Forexample, the distributed computing environment 700 can includesresources that can provide a service to user devices.

Accordingly, the distributed computing environment 700 can include acomputing environment 702 operating on, in communication with, or aspart of the network 704. The network 704 can include various accessnetworks. One or more client devices 706A-706N (hereinafter referred tocollectively and/or generically as “clients 706” and also referred toherein as computing devices 706) can communicate with the computingenvironment 702 via the network 704. In one illustrated configuration,the clients 706 include a computing device 706A such as a laptopcomputer, a desktop computer, or other computing device; a slate ortablet computing device (“tablet computing device”) 706B; a mobilecomputing device 706C such as a mobile telephone, a smart phone, orother mobile computing device; a server computer 706D; and/or otherdevices 706N. It should be understood that any number of clients 706 cancommunicate with the computing environment 702.

In various examples, the computing environment 702 includes servers 708,data storage 710, and one or more network interfaces 712. The servers708 can host various services, virtual machines, portals, and/or otherresources. In the illustrated configuration, the servers 708 hostvirtual machines 714, Web portals 716, mailbox services 718, storageservices 720, and/or, social networking services 722. As shown in FIG. 7the servers 708 also can host other services, applications, portals,and/or other resources (“other resources”) 724.

As mentioned above, the computing environment 702 can include the datastorage 710. According to various implementations, the functionality ofthe data storage 710 is provided by one or more databases operating on,or in communication with, the network 704. The functionality of the datastorage 710 also can be provided by one or more servers configured tohost data for the computing environment 702. The data storage 710 caninclude, host, or provide one or more real or virtual datastores726A-726N (hereinafter referred to collectively and/or generically as“datastores 726”). The datastores 726 are configured to host data usedor created by the servers 808 and/or other data. That is, the datastores726 also can host or store web page documents, word documents,presentation documents, data structures, algorithms for execution by arecommendation engine, and/or other data utilized by any applicationprogram. Aspects of the datastores 726 may be associated with a servicefor storing files.

The computing environment 702 can communicate with, or be accessed by,the network interfaces 712. The network interfaces 712 can includevarious types of network hardware and software for supportingcommunications between two or more computing devices including, but notlimited to, the computing devices and the servers. It should beappreciated that the network interfaces 712 also may be utilized toconnect to other types of networks and/or computer systems.

It should be understood that the distributed computing environment 700described herein can provide any aspects of the software elementsdescribed herein with any number of virtual computing resources and/orother distributed computing functionality that can be configured toexecute any aspects of the software components disclosed herein.According to various implementations of the concepts and technologiesdisclosed herein, the distributed computing environment 700 provides thesoftware functionality described herein as a service to the computingdevices. It should be understood that the computing devices can includereal or virtual machines including, but not limited to, servercomputers, web servers, personal computers, mobile computing devices,smart phones, and/or other devices. As such, various configurations ofthe concepts and technologies disclosed herein enable any deviceconfigured to access the distributed computing environment 700 toutilize the functionality described herein for providing the techniquesdisclosed herein, among other aspects.

Encoding the software modules presented herein also may transform thephysical structure of the computer-readable media presented herein. Thespecific transformation of physical structure may depend on variousfactors, in different implementations of this description. Examples ofsuch factors may include, but are not limited to, the technology used toimplement the computer-readable media, whether the computer-readablemedia is characterized as primary or secondary storage, and the like.For example, if the computer-readable media is implemented assemiconductor-based memory, the software disclosed herein may be encodedon the computer-readable media by transforming the physical state of thesemiconductor memory. For example, the software may transform the stateof transistors, capacitors, or other discrete circuit elementsconstituting the semiconductor memory. The software also may transformthe physical state of such components in order to store data thereupon.

The disclosure presented herein also encompasses the subject matter setforth in the following clauses.

Example Clause A, a method comprising: exposing options to create oredit a widget to be included in a single user interface view along withother widgets, wherein the widget is allocated a display space in thesingle user interface view; receiving first user input associated with afirst option that selects a type of the widget from a plurality of typesincluding: an embedded view type that retrieves, upon activation of thedisplay space, data from a target location and that displays the datawithin the display space; a template type that describes a template fordisplaying data retrieved from a target location within the displayspace in a standard format; and a redirect link type that redirects auser, upon activation of the display space, to a separate user interfaceassociated with a target location; receiving second user inputassociated with a second option that selects a category for the widget;receiving third user input associated with a third option that selectswhether the display space allocated to the widget in the single userinterface view is to transition from a first state to a second stateupon activation of the display space; creating or editing, by one ormore processing units, the widget within the single user interface viewbased at least in part on the first user input, the second user input,and the third user input; and displaying the single user interface viewon a computing device.

Example Clause B, the method of Example Clause A, wherein the templatetype is configured to: use authorization tokens to refresh the dataretrieved from the target location over a period of time; or anauthentication module that requires a user to sign into an account atleast one time using verified credentials.

Example Clause C, the method of Example Clause A or Example Clause B,wherein the data retrieved by the embedded view type comprises one ofstreaming video, a really simple syndication (RSS) feed, or map routesor directions.

Example Clause D, the method of any one of Example Clauses A through C,wherein the target location comprises a web site or a web applicationidentified by a uniform resource locator.

Example Clause E, the method of any one of Example Clauses A through D,wherein the single user interface view comprises a homepage displayed ina tab of a browser.

Example Clause F, the method of any one of Example Clauses A through D,wherein the single user interface view comprises a homepage displayed ina mobile application.

Example Clause G, the method of any one of Example Clauses A through F,further comprising receiving fourth user input associated with a fourthoption that selects a size of the display space allocated to the widgetin the single user interface view.

Example Clause H, the method of any one of Example Clauses A through F,further comprising receiving fourth user input associated with a fourthoption that selects a text color and a background color of the displayspace allocated to the widget in the single user interface view.

Example Clause I, a device: one or more processing units; andcomputer-readable storage media storing instructions, that when executedby the one or more processing units, configure the device to performoperations comprising: exposing options to create or edit a widget to beincluded in a single user interface view along with other widgets,wherein the widget is allocated a display space in the single userinterface view; receiving first user input associated with a firstoption that selects a type of the widget: receiving second user inputassociated with a second option that selects whether the display spaceallocated to the widget in the single user interface view is totransition from a default state to an expanded state upon activation ofthe display space; creating or editing the widget within the single userinterface view based at least in part on the first user input and thesecond user input; and displaying the single user interface view on acomputing device.

Example Clause J, the device of Example Clause I, wherein the type ofthe widget comprises an embedded view type that retrieves, uponactivation of the display space, data from a target location and thatdisplays the data within the display space.

Example Clause K, the device of Example Clause I, wherein the type ofthe widget comprises a template type that describes a template fordisplaying data retrieved from a target location within the displayspace in a standard format.

Example Clause L, the device of Example Clause K, wherein the templatetype is configured to: use authorization tokens to refresh the dataretrieved from the target location over a period of time; or anauthentication module that requires a user to sign into an account atleast one time using verified credentials.

Example Clause M, the device of Example Clause I, wherein the type ofthe widget comprises a redirect link type that redirects a user, uponactivation of the display space, to a separate user interface associatedwith a target location.

Example Clause N, the device of any one of Example Clauses I through M,wherein the operations further comprise receiving third user inputassociated with a third option that selects a category for the widget,wherein the widget is created or edited within the single user interfaceview based at least in part on the first user input, the second userinput, and the third input.

Example Clause O, the device of any one of Example Clauses I through N,wherein an individual widget displayed in the single user interface viewis configured for user interaction and performance of correspondingfunctionality based on the user interaction.

Example Clause P, a device: one or more processing units; andcomputer-readable storage media storing instructions, that when executedby the one or more processing units, configure the device to performoperations comprising: displaying, as part of a homepage in a browser oran application, a plurality of display spaces associated with aplurality of widgets that have been configured by a user, wherein anindividual widget is configured to retrieve data from a target location;receiving user input that selects a display space of the plurality ofdisplay spaces, wherein the selected display space displays a firstamount of the retrieved data; in response to receiving the user input,expanding a size of the display space from a first size to a secondsize; and displaying the first amount of the retrieved data within theselected display space along with a second amount of the retrieved datathat fits in the second size but not the first size.

Example Clause Q, the device of Example Clause P, wherein the widgetcomprises an embedded view type widget that embeds the retrieved datawithin the selected display space.

Example Clause R, the device of Example Clause P, wherein the widgetcomprises a template type widget that describes a template fordisplaying the retrieved data within the selected display space in astandard format.

Example Clause S, the device of Example Clause R, wherein the templatetype widget is configured to: use authorization tokens to refresh thedata retrieved from the target location over a period of time; or anauthentication module that requires a user to sign into an account atleast one time using verified credentials.

Example Clause T, the device of any one of Example Clauses P through S,wherein the plurality of widgets are displayed in different categoriesdefined by the user.

Conditional language such as, among others, “can,” “could,” “might” or“may,” unless specifically stated otherwise, are understood within thecontext to present that certain examples include, while other examplesdo not include, certain features, elements and/or steps. Thus, suchconditional language is not generally intended to imply that certainfeatures, elements and/or steps are in any way required for one or moreexamples or that one or more examples necessarily include logic fordeciding, with or without user input or prompting, whether certainfeatures, elements and/or steps are included or are to be performed inany particular example. Conjunctive language such as the phrase “atleast one of X, Y or Z,” unless specifically stated otherwise, is to beunderstood to present that an item, term, etc. may be either X, Y, or Z,or a combination thereof.

The terms “a,” “an,” “the” and similar referents used in the context ofdescribing the invention (especially in the context of the followingclaims) are to be construed to cover both the singular and the pluralunless otherwise indicated herein or clearly contradicted by context.The terms “based on,” “based upon,” and similar referents are to beconstrued as meaning “based at least in part” which includes being“based in part” and “based in whole” unless otherwise indicated orclearly contradicted by context.

It should be appreciated that any reference to “first,” “second,” etc.elements within the Summary and/or Detailed Description is not intendedto and should not be construed to necessarily correspond to anyreference of “first,” “second,” etc. elements of the claims. Rather, anyuse of “first” and “second” within the Summary, Detailed Description,and/or claims may be used to distinguish between two different instancesof the same element (e.g., two different types, two different tiles,etc.).

In closing, although the various configurations have been described inlanguage specific to structural features and/or methodological acts, itis to be understood that the subject matter defined in the appendedrepresentations is not necessarily limited to the specific features oracts described. Rather, the specific features and acts are disclosed asexample forms of implementing the claimed subject matter. All examplesare provided for illustrative purposes and is not to be construed aslimiting.

What is claimed is:
 1. A method comprising: exposing options to create or edit a widget to be included in a single user interface view along with other widgets, wherein the widget is allocated a display space in the single user interface view; receiving first user input associated with a first option that selects a type of the widget from a plurality of types including: an embedded view type that retrieves, upon activation of the display space, data from a target location and that displays the data within the display space; a template type that describes a template for retrieving user data from an application in association with a user account and for displaying the user data within the display space in a standard format, wherein: the template type uses authorization tokens to refresh the user data retrieved from the application in association with the user account over a period of time or an authentication module that requires a user to sign in to the user account at least one time using verified credentials; and the template type enables a user to interact with the user data thereby causing the application to perform functions based on the interaction; and a redirect link type that redirects a user, upon activation of the display space, to a separate user interface associated with a target location; receiving second user input associated with a second option that selects a category for the widget, from a plurality of categories defined by a user, wherein the single user interface view includes separate display areas for grouping related widgets into individual ones of the plurality of categories defined by the user; receiving third user input associated with a third option that selects whether the display space allocated to the widget in the single user interface view is to transition from a first state to a second state upon activation of the display space; creating or editing, by one or more processing units, the widget within the single user interface view based at least in part on the first user input, the second user input, and the third user input; and displaying the single user interface view on a computing device.
 2. The method of claim 1, wherein the data retrieved by the embedded view type comprises one of streaming video, a really simple syndication (RSS) feed, or map routes or directions.
 3. The method of claim 1, wherein the target location comprises a web site or a web application identified by a uniform resource locator.
 4. The method of claim 1, wherein the single user interface view comprises a homepage displayed in a tab of a browser.
 5. The method of claim 1, wherein the single user interface view comprises a homepage displayed in a mobile application.
 6. The method of claim 1, further comprising receiving fourth user input associated with a fourth option that selects a size of the display space allocated to the widget in the single user interface view.
 7. The method of claim 1, further comprising receiving fourth user input associated with a fourth option that selects a text color and a background color of the display space allocated to the widget in the single user interface view.
 8. The method of claim 1, wherein the type of widget is the embedded view type and the widget is configured to enable a user to scroll through the data within the display space allocated to the widget.
 9. The method of claim 1, wherein the type of widget is the template type and the widget is configured to enable a user to scroll through the user data within the display space allocated to the widget.
 10. A device comprising: one or more processing units; and computer-readable storage media storing instructions, that when executed by the one or more processing units, configure the device to perform operations comprising: exposing options to create or edit a widget to be included in a single user interface view along with other widgets, wherein the widget is allocated a display space in the single user interface view, the display space associated with a category defined by a user; receiving first user input associated with a first option that selects a type of the widget, wherein type of widget includes a template type that: retrieves user data from an application in association with a user account and for displaying the user data; uses authorization tokens to refresh the user data retrieved from the application in association with the user account over a period of time or an authentication module that requires a user to sign in to the user account at least one time using verified credentials; and enables a user to interact with the user data thereby causing the application to perform functions based on the interaction; receiving second user input associated with a second option that selects whether the display space allocated to the widget in the single user interface view is to transition from a default state to an expanded state upon activation of the display space; creating or editing the widget within the single user interface view based at least in part on the first user input and the second user input; and displaying the single user interface view on a computing device.
 11. The device of claim 10, wherein the operations further comprise receiving third user input associated with a third option that selects the category for the widget, wherein the widget is created or edited within the single user interface view based at least in part on the first user input, the second user input, and the third input.
 12. The device of claim 10, wherein the widget is configured to enable a user to scroll through the user data within the display space allocated to the widget.
 13. A device comprising: one or more processing units; and computer-readable storage media storing instructions, that when executed by the one or more processing units, configure the device to perform operations comprising: displaying, as part of a homepage in a browser or an application, a plurality of display spaces associated with a plurality of widgets that have been configured by a user, wherein: an individual widget is configured to retrieve data from a target location and the plurality of display spaces are grouped into individual ones of a plurality of categories defined by a user for the homepage; and the target location for at least one widget of the plurality of widgets includes an application associated with a user account, the retrieval of the data using authorization tokens to refresh the data retrieved over a period of time or an authentication module that requires a user to sign in to the user account at least one time using verified credentials; receiving user input that selects a display space of the plurality of display spaces, wherein the selected display space displays a first amount of the retrieved data; in response to receiving the user input, expanding a size of the display space from a first size to a second size; and displaying the first amount of the retrieved data within the selected display space along with a second amount of the retrieved data that fits in the second size but not the first size.
 14. The device of claim 13, wherein at least one other widget comprises an embedded view type widget that embeds the data within the selected display space.
 15. The device of claim 13, wherein the at least one widget comprises a template type widget that describes a template for displaying the data within the selected display space in a standard format.
 16. The device of claim 13, wherein the plurality categories are defined by the user to separate productivity applications with which the user interacts.
 17. The device of claim 13, wherein the at least one widget is configured to enable a user to scroll through the user data within a corresponding display space. 